import Vue from 'vue'
import VueRouter from 'vue-router'
/* import Home from '../views/Home.vue' */
import Login from '../components/Login.vue'
import Home from '../components/home.vue'
import Welcome from '../components/Welcome.vue'
import Users from '../components/user/users.vue'
import Rights from '../components/power/rights.vue'
import Roles from '../components/power/Roles.vue'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    redirect: '/login'
  },
  {
    path: '/login',
    component: Login
  }
  ,
  {
    path: '/Home',
    component: Home,
    //<!--路由重定向-->
    redirect:'/welcome',
    children:[
      {path:'/welcome',component:Welcome },
      {path:'/users',component:Users },
      { path: '/rights', component: Rights },
      { path: '/Roles', component: Roles }
    ]
  }
]

const router = new VueRouter({
  routes
})
//挂载路由导航守卫
router.beforeEach((to,from,next)=>{
  //to 将要访问的路径
  //from 代表从哪个路径跳转而来
  //next 量个函数，表示放行
  //     next()放行 next('/login') 强制跳转
  if(to.path==='/login') return next();//如果访问的登录页，直接放行
  //获取token
  const tokenStr = window.sessionStorage.getItem('token');
  if(!tokenStr) return next('/login');//如果token不存在直接转到登录页
  next();
  
})
export default router

const originalPush = VueRouter.prototype.push
   VueRouter.prototype.push = function push(location) {
   return originalPush.call(this, location).catch(err => err)
}
